/* 
向外提供3种路由
常量路由: 初始化就注册的路由  
			==> 不登陆也能访问(如: Login) / 不做权限控制的登陆后的路由(Home) => constantRoutes
	异步/权限路由: 请求得到路由权限数据后注册的路由  
			==> 需要进行权限控制的路由 => asyncRoutes
	通配/任意路由: 必须最后动态注册  
			==> 匹配所有非常量/异步路由的跳转, 自动转向显示404页面 => anyRoute
*/

import Layout from '@/layout'

/* 
常量路由: 初始化就注册的路由  
*/
export const constantRoutes = [

  // 测试作用域样式和深度作用域选择器
  {
    path: '/deep-scoped',
    component: () => import('@/test/deepScoped'),
    hidden: true, // 标识不显示到菜单导航中
  },


  /* 登陆页面 */
  {
    path: '/login',
    component: () => import('@/views/login/index'),
    hidden: true, // 标识不显示到菜单导航中
  },

  /* 404页面 */
  {
    path: '/404',
    component: () => import('@/views/404'),
    hidden: true
  },

  /* 首页 */
  {
    path: '/',
    component: Layout,
    redirect: '/dashboard',
    children: [{
      path: 'dashboard',
      name: 'Dashboard',
      component: () => import('@/views/dashboard/index'),
      meta: { title: 'Dashboard', icon: 'dashboard' }
    }]
  },
]

/* 
所有异步路由 => 动态注册
*/
export const allAsyncRoutes = [

  /* 权限管理 start */
  {
    name: 'Acl',
    path: '/acl',
    component: Layout,
    redirect: '/acl/user/list',
    meta: { 
      title: '权限管理', 
      icon: 'el-icon-lock' 
    },
    children: [
      {
        name: 'User',
        path: 'user/list',
        component: () => import('@/views/acl/user/list'),
        meta: { 
          title: '用户管理', 
        },
      },
      {
        name: 'Role',
        path: 'role/list',
        component: () => import('@/views/acl/role/list'),
        meta: { 
          title: '角色管理', 
        },
      },
      {
        name: 'RoleAuth',
        path: 'role/auth/:id',
        component: () => import('@/views/acl/role/roleAuth'),
        meta: {
          activeMenu: '/acl/role/list',
          title: '角色授权',
        },
        hidden: true,
      },
      {
        name: 'Permission',
        path: 'permission/list',
        component: () => import('@/views/acl/permission/list'),
        meta: { 
          title: '菜单管理',
        },
      },
    ]
  },
  /* 权限管理 end */

  /* 商品管理 start */
  {
    name: 'Product', // 标识名称  ==> 后面要做的路由权限控制
    path: '/product', // 路由路径
    component: Layout, // 一级路由组件, 总是layout, 就是管理界面的整体布局
    redirect: '/product/category/list', // 自动重定向显示分类管理界面
    meta: { 
      title: '商品管理',  // 菜单项的标题
      icon: 'el-icon-shopping-cart-2'  // 菜单项的图标
    },
    children: [ // 配置子路由
      {
        name: 'Category', // 标识名称  ==> 后面要做的路由权限控制
        path: 'category/list', // 路由路径
        component: () => import('@/views/product/category/list.vue'), // 二级路由组件 => 对应功能菜单组件
        meta: { 
          title: '分类管理' // 菜单项的标题 
        },
      },
      {
        name: 'Trademark',
        path: 'trademark/list',
        component: () => import('@/views/product/trademark/list.vue'),
        meta: { 
          title: '品牌管理'
        }
      },

      {
        name: 'Attr',
        path: 'attr/list',
        component: () => import('@/views/product/attr/list'),
        meta: { 
          title: '平台属性管理', 
        },
      },
      {
        name: 'Spu',
        path: 'spu/list',
        component: () => import('@/views/product/spu/list'),
        meta: { 
          title: 'SPU管理', 
        },
      },
      {
        name: 'Sku',
        path: 'sku/list',
        component: () => import('@/views/product/sku/list'),
        meta: { 
          title: 'SKU管理', 
        },
      }
    ]
  },

  /* 测试管理 start */
{
  name: 'Test', // 标识名称  ==> 后面要做的路由权限控制
  path: '/test', // 路由路径
  component: Layout, // 一级路由组件, 总是layout, 就是管理界面的整体布局
  redirect: '/test/test1', // 自动重定向显示分类管理界面
  meta: { 
    title: '测试管理',  // 菜单项的标题
    icon: 'el-icon-shopping-cart-2'  // 菜单项的图标
  },
  children: [ // 配置子路由
    {
      name: 'Test1', // 标识名称  ==> 后面要做的路由权限控制
      path: 'test1', // 路由路径
      component: () => import('@/views/Test/Test1.vue'), // 二级路由组件 => 对应功能菜单组件
      meta: { 
        title: '测试1管理' // 菜单项的标题 
      },
    },
    {
      name: 'Test2', // 标识名称  ==> 后面要做的路由权限控制
      path: 'test2', // 路由路径
      component: () => import('@/views/Test/Test2.vue'), // 二级路由组件 => 对应功能菜单组件
      meta: { 
        title: '测试2管理' // 菜单项的标题 
      },
    },
  ]
},
  /* 测试管理 end */

]

/* 
通配路由 => 动态注册在最后
*/
export const anyRoute = { path: '*', redirect: '/404', hidden: true }
